<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>计算出字符串中出现次数最多的字符是什么，出现了多少次</title>
</head>
<body>
  <script>
    function getMaxCountStr(str) {
      let obj = {}//用来存放字符串中的字符和对应的次数
      let count = 1//最多的字符出现的次数，初始化为1
      let character = ''//出现最多的字符，初始化为 ''
      for(let item of str) {//循环整个字符串
        if(item in obj) {//如果该字符是obj的属性，那就让该属性值+1
          obj[item]++
        } else {//如果该字符不是obj的属性，就给该属性赋值为1
          obj[item] = 1
        }
      }
      //循环这个对象
      for(let key in obj) {
        // 如果count的值小于当前的属性值，就给count赋值为当前的属性值
        // 同时character的值为当前属性
        if(obj[key] > count) {
          count = obj[key]
          character = key
        }
      }
      return character + ' 出现了 ' + count + ' 次'
    }
    getMaxCountStr('23423423423423423424242423')
    function getMaxCountCharacter(str) {
      let count = 1 //最多的字符出现的次数，初始化为1
      let result = ''//我们要的结果，一个字符串
      while(str) {//while循环并判断str是否不为空，不为空则继续循环
        let oldStr = str,//定义一个字符串和原字符串相等
          character = str.charAt(0);//定义一个单字符串，每次取的是字符串的第一个字符
        str = str.replace(new RegExp(character, 'g'), '')//每次循环都把str中的和第一个字符相同的所有字符都替换为''
        if(oldStr.length - str.length > count) {//判断之前的字符串的长度和现在字符串的长度差是否比count大
          count = oldStr.length - str.length
          result = character + ' 出现了 ' + count + '次'
        }
      }
      return result
    }
    getMaxCountCharacter('lkasjdslfjiwejrowjewolksfalkdsjfklahglakf')
  </script>
</body>
</html>